Consulta de Guías Docentes



Academic Year/course: 2022/23

625 - Bachelor's Degree in Industrial Processes' Data Engineering

29519 - Data Structure and Algorithms


Syllabus Information

Academic Year:
2022/23
Subject:
29519 - Data Structure and Algorithms
Faculty / School:
175 - Escuela Universitaria Politécnica de La Almunia
Degree:
625 - Bachelor's Degree in Industrial Processes' Data Engineering
ECTS:
6.0
Year:
2
Semester:
First semester
Subject Type:
Compulsory
Module:
---

1. General information

1.1. Aims of the course

In this course, students will improve their ability to design and develop computer programs, emphasizing the identification, design and definition of Abstract Data Types (ADTs) regardless of their implementation. The student will learn to design and implement TADs so that they are reusable, efficient and robust, and to implement them guaranteeing these properties. Some of the most frequently used fundamental TADs will be presented, such as: stacks, queues, lists, search trees, tables, etc., for which different implementation alternatives will be studied and compared. A series of basic algorithmic schemes will also be introduced (such as divide to win, backward search, greed...) and the student will learn to recognize the problems that require this type of schemes for their resolution and how to apply them.

These approaches and objectives are aligned with the following Sustainable Development Goals (SDGs) of the United Nations 2030 Agenda (https://www.un.org/sustainabledevelopment/es/), in such a way that the acquisition of the results of Learning the subject provides training and competence to contribute to some extent to its achievement:

  • Goal 7: Affordable and clean energy.
    • Target 7.3 By 2030, double the global rate of improvement in energy efficiency.

  • Goal 8: Decent work and economic growth.
    • Target 8.2 Achieve higher levels of economic productivity through diversification, technological upgrading and innovation, including by focusing on high value-added and labor-intensive sectors.

    • Target 8.4. Progressively improve, by 2030, the efficient production and consumption of global resources and seek to decouple economic growth from environmental degradation, in accordance with the 10-Year Framework of Programs on Sustainable Consumption and Production Patterns, starting with developed countries .

  • Objective 9: Industry, innovation and infrastructures.
    • Target 9.1: Develop reliable, sustainable, resilient and quality infrastructure, including regional and cross-border infrastructure, to support economic development and human well-being, with particular emphasis on affordable and equitable access for all.

    • Target 9.5 Increase scientific research and improve the technological capacity of the industrial sectors.

    • Target 9.c Significantly increase access to information and communications technology.

1.2. Context and importance of this course in the degree

Data Structures and Algorithms is a 2nd year subject that appears after the subjects "Fundamentals of Computer Science" and "Programming" (both from 1st year).

It is a compulsory subject that is found within the Data Processing module, in the subject "Algorithms and Data", together with the subjects of "Programming" and "Parallel Programming".

1.3. Recommendations to take this course

The student who takes this subject must have a robust training in programming, being highly recommended to have passed the subject "Programming".

2. Learning goals

2.1. Competences

Upon passing the subject, the student will have acquired the following skills:

  • CB2 - That students know how to apply their knowledge to their work or vocation in a professional way and possess the competencies that are usually demonstrated through the development and defense of arguments and problem solving within their area of study.
  • CG03 - Apply techniques for the acquisition, management and treatment of data in Engineering.
  • CG05 - Solve technological problems that may arise in data engineering.
  • CT01 - Work cooperatively, assuming and respecting the role of the different team members.
  • CT05 - Communication of results effectively.
  • CT07 - Analyze and solve problems autonomously, adapt to unforeseen situations and make decisions.
  • CE01 - Design and implement algorithms in high-level programming languages, using current methodologies.
  • CE14 - Build the most appropriate data types and structures to solve a problem.

2.2. Learning goals

The student, to pass this course, must demonstrate the following results...

  • It is capable of identifying, designing and defining Abstract Data Types (ADTs) regardless of their implementation.
    Design and implement reusable and robust ADTs in a modular programming language or in an object-oriented language.
  • Design and implement robust medium-sized programs by identifying, defining and implementing the necessary Abstract Data Types (ADTs).
  • It is capable of identifying, using and implementing some fundamental ADTs, such as: stacks, queues, lists, search trees, hash tables and graphs.
  • It is able to compare different TAD implementation alternatives with respect to algorithm execution time and memory usage, and to select the most appropriate one for each problem or context.
  • Know and apply the basic algorithmic schemes (such as divide to win, backward search, greed...) to solve problems.

2.3. Importance of learning goals

Data Structures and Algorithms will constitute a solid base in the student's training for the design and development of systems or programming projects of increasing size and complexity, whether based on modular design or object-oriented design, always seeking the encapsulation, quality, efficiency and reusability of the software.

A set of frequently used TADs and algorithms will also be presented, and that every future Data Engineer must know and know how to use in order to design solutions in the new contexts or problems they face.

3. Assessment (1st and 2nd call)

3.1. Assessment tasks (description of tasks, marking system and assessment criteria)

The evaluation process will include two types of action:

  • A continuous evaluation system, which will be carried out throughout the learning period.
  • A global assessment test, reflecting the achievement of learning results, at the end of the teaching period.

 

1-Continuous evaluation system.

Following the spirit of Bologna, regarding the degree of involvement and continued work of the student throughout the course, the evaluation of the subject considers the continuous evaluation system as the most appropriate to be in line with the guidelines set by the new framework from the EHEA.

The continuous evaluation system will have the following group of qualifying activities:

  • Works: The works will consist of practical exercises, solution to proposed problems, questionnaires, etc. The correctness and quality of the results will be assessed. These practices will be carried out in groups of a maximum of 20 students. The percentage with respect to the global mark of all these works will be 40%.
  • Assessment tests: There are three throughout the course. The percentage with respect to the global mark of each evaluation test will be 20%.

It is necessary to pass the works and written tests separately so that they can contribute to the average of the final grade.

To opt for the Continuous Assessment system, you must attend at least 80% of the face-to-face activities (practices, technical visits, classes, etc.)

 

2-Global final evaluation test.

The student must opt ​​for this modality when, due to their personal situation, they cannot adapt to the rhythm of work required in the continuous evaluation system, have suspended or want to upload a grade having participated in said evaluation methodology.

The global final evaluation test will have the following group of qualifying activities:

  • Exam: It is carried out in the official calls. This option can always be followed even though the student has used the continuous assessment system. (50% of the final grade).
  • The assignments, practical exercises, solution to proposed problems, questionnaires, etc., that have not been carried out during the course, and can be delivered in a new version on the day of the call. (50% of the final grade).

4. Methodology, learning tasks, syllabus and resources

4.1. Methodological overview

The subject is strongly based on practice, so it has many practical works in class.

The organization of teaching will be carried out using the following steps:

  • Lectures: Theoretical activities carried out mainly through exposition by the teacher, where the theoretical supports of the subject are displayed, highlighting the fundamental, structuring them in topics and or sections, interrelating them.
  • Practice Sessions: The teacher resolves practical problems or cases for demonstrative purposes. This type of teaching complements the theory shown in the lectures with practical aspects.
  • Laboratory Workshop: The lecture group is divided up into various groups, according to the number of registered students, in order to make up smaller sized groups.
  • Individual Tutorials: Those carried out giving individual, personalized attention with a teacher from the department. Said tutorials may be in person or online.

The approach, methodology and assessment of this guide are intended to be the same for any teaching scenarios. They will be adapted to the social-health situation at any particular time, as well as to the instructions given by the authorities concerned.

Further information regarding the course will be provided on the first day of class.

4.2. Learning tasks

Face-to-face generic activities:

  • Theory Classes: The theoretical concepts of the subject are explained and illustrative examples are developed as a support to the theory when necessary.
  • Practical Classes: Problemas and practical classes are carried out, complementary to the theoretical concepts studied.
  • Laboratory Workshop: This work is tutored by a teacher, in groups of no more than 20 students.

Generic non-class activities

  • Study and understanding of the theory taught in the lectures.
  • Understanding and assimilation of the problems and practical classes solved in the practical classes.
  • Solving proposed problems, project, etc.
  • Preparation of laboratory workshops, preparation of summaries and reports.
  • Preparation of the written tests for continuous assessment and final exams.

4.3. Syllabus

The course program is structured around two components of complementary content:

  • Theorists.
  • Practical.

Theoretical Contents:

  1. Analysis and design of algorithms.
  2. Programming with Abstract Data Types.
  3. Linear and Hierarchical Data Structures.
  4. Recursive, search and sort algorithms.

Practical contents:

Every part has related practices. As the concepts are shown, the practices are going to be presented, in the classroom or in  Moodle platform.

4.4. Course planning and calendar

The subject has 6 ECTS credits, which represents 150 hours of student work in the subject during the trimester, in other words, 10 hours per week for 15 weeks of class.

A summary of a weekly timetable guide can be seen in the following table.

  • 1 hour of lectures
  • 3 hour of laboratory workshops
  • 6 hours of other activities

Nevertheless, the previous table can be shown in greater detail, taking into account the following overall distribution:

  • 15 hours of lectures.
  • 41 hours of laboratoy workshop.
  • 4 hours of wirtten assessment tests, two hours per test.
  • 45 hours of exercices and tutelated work, divided up the 15 weeks of the second semester.
  • 45 hours of personal study, divided up the 15 weeks of the second semester.

There is a tutorial calendar timetable set by the teacher taht can be requested by the students who want a tutorial.

4.5. Bibliography and recommended resources

http://psfunizar10.unizar.es/br13/egAsignaturas.php?codigo=29519


Curso Académico: 2022/23

625 - Graduado en Ingeniería de Datos en Procesos Industriales

29519 - Estructura de datos y algoritmos


Información del Plan Docente

Año académico:
2022/23
Asignatura:
29519 - Estructura de datos y algoritmos
Centro académico:
175 - Escuela Universitaria Politécnica de La Almunia
Titulación:
625 - Graduado en Ingeniería de Datos en Procesos Industriales
Créditos:
6.0
Curso:
2
Periodo de impartición:
Primer semestre
Clase de asignatura:
Obligatoria
Materia:
---

1. Información Básica

1.1. Objetivos de la asignatura

En esta asignatura el alumno mejorará su capacidad para diseñar y desarrollar programas de ordenador haciendo énfasis en la identificación, diseño y definición de Tipos Abstractos de Datos (TADs) independientemente de su implementación. El alumno aprenderá a diseñar e implementar TADs para que sean reutilizables, eficientes y robustos, y a implementarlos garantizando dichas propiedades. Se presentarán algunos de los TADs fundamentales de uso más frecuente, como: pilas, colas, listas, árboles de búsqueda, tablas, etc., para los que se estudiarán y compararán distintas alternativas de implementación. También se introducirán una serie de esquemas algorítmicos básicos (como dividir para vencer, búsqueda con retroceso, voracidad...) y el alumno aprenderá a reconocer los problemas que requieren este tipo de esquemas para su resolución y cómo aplicarlos.

Estos planteamientos y objetivos están alineados con los siguientes Objetivos de Desarrollo Sostenible (ODS) de la Agenda 2030 de Naciones Unidas (https://www.un.org/sustainabledevelopment/es/), de tal manera que la adquisición de los resultados de aprendizaje de la asignatura proporciona capacitación y competencia para contribuir en cierta medida a su logro:

  • Objetivo 7: Energía asequible y no contaminante.
    • Meta 7.3  De aquí a 2030, duplicar la tasa mundial de mejora de la eficiencia energética.

  • Objetivo 8: Trabajo decente y crecimiento económico.
    • Meta 8.2 Lograr niveles más elevados de productividad económica mediante la diversificación, la modernización tecnológica y la innovación, entre otras cosas centrándose en los sectores con gran valor añadido y un uso intensivo de la mano de obra.

    • Meta 8.4. Mejorar progresivamente, de aquí a 2030, la producción y el consumo eficientes de los recursos mundiales y procurar desvincular el crecimiento económico de la degradación del medio ambiente, conforme al Marco Decenal de Programas sobre modalidades de Consumo y Producción Sostenibles, empezando por los países desarrollados.

  • Objetivo 9: Industria, innovación e infraestructuras.
    • Meta 9.1: Desarrollar infraestructuras fiables, sostenibles, resilientes y de calidad, incluidas infraestructuras regionales y transfronterizas, para apoyar el desarrollo económico y el bienestar humano, haciendo especial hincapié en el acceso asequible y equitativo para todos.

    • Meta 9.5 Aumentar la investigación científica y mejorar la capacidad tecnológica de los sectores industriales.

    • Meta 9.c Aumentar significativamente el acceso a la tecnología de la información y las comunicaciones.

1.2. Contexto y sentido de la asignatura en la titulación

Estructura de Datos y Algoritmos es una asignatura de 2º curso que aparece a continuación de las asignaturas "Fundamentos de Informática" y "Programación" (ambas de 1º curso).

Es una asignatura obligatoria que se encuentra dentro del módulo de Procesado de Datos, en la materia "Algoritmos y Datos", junto a las asignaturas de "Programación" y "Programación Paralela".

1.3. Recomendaciones para cursar la asignatura

El alumno que curse esta asignatura ha de contar con una formación robusta en programación, siendo muy recomendable haber superado la asignatura "Programación".

2. Competencias y resultados de aprendizaje

2.1. Competencias

Al superar la asignatura, el alumno habrá adquirido las siguientes competencias:

  • CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
  • CG03 - Aplicar técnicas para la adquisición, gestión y tratamiento de datos en la Ingeniería.
  • CG05 - Resolver problemas tecnológicos que puedan plantearse en la Ingeniería de datos.
  • CT01 - Trabajar cooperativamente asumiendo y respetando el rol de los diferentes miembros del equipo.
  • CT05 - Comunicación de resultados de manera efectiva.
  • CT07 - Analizar y solucionar problemas de forma autónoma, adaptarse a situaciones imprevistas y tomar decisiones.
  • CE01 - Diseñar e implementar algoritmos en lenguajes de programación de alto nivel, utilizando metodologías actuales.
  • CE14 - Construir los tipos y estructuras de datos más adecuados a la resolución de un problema.

2.2. Resultados de aprendizaje

El estudiante, para superar esta asignatura, deberá demostrar los siguientes resultados...

  • Es capaz de identificar, diseñar y definir Tipos Abstractos de Datos (TADs) independientemente de su implementación.
  • Diseña e implementa TADs reutilizables y robustos en un lenguaje de programación modular o en un lenguaje orientado a objetos.
  • Diseña e implementa programas robustos de tamaño medio identificando, definiendo e implementando los Tipos Abstractos de Datos (TADs) necesarios.
  • Es capaz de identificar, utilizar e implementar algunos TADs fundamentales, como: pilas, colas, listas, árboles de búsqueda, tablas hash y grafos.
  • Es capaz de comparar distintas alternativas de implementación de TADs con respecto al tiempo de ejecución de algoritmos y al uso de la memoria, y de seleccionar la más adecuada en cada problema o contexto.
  • Conoce y aplica los esquemas algorítmicos básicos (como dividir para vencer, búsqueda con retroceso, voracidad...) a la resolución de problemas.

2.3. Importancia de los resultados de aprendizaje

Estructuras de Datos y Algoritmos constituirá una base sólida en la formación del alumno para el diseño y desarrollo de sistemas o proyectos de programación de cada vez mayor tamaño y complejidad, ya sean basados en el diseño modular o en el diseño orientado a objetos, buscando siempre la encapsulación, calidad, eficiencia y reutilización del software.

Se presentarán además un conjunto de TADs y algoritmos de uso frecuente, y que todo futuro Ingeniero de Datos debe conocer y saber utilizar para poder diseñar soluciones en los nuevos contextos o problemas a los que se enfrente.

3. Evaluación

3.1. Tipo de pruebas y su valor sobre la nota final y criterios de evaluación para cada prueba

El proceso evaluativo incluirá dos tipos de actuación:

  • Un sistema de evaluación continua, que se realizará a lo largo de todo el período de aprendizaje.
  • Una prueba global de evaluación, que refleje la consecución de los resultados de aprendizaje, al término del período de enseñanza.

 

1-Sistema de evaluación continua.

Siguiendo el espíritu de Bolonia, en cuanto al grado de implicación y trabajo continuado del alumno a lo largo del curso, la evaluación de la asignatura contempla el sistema de evaluación continua como el más acorde para estar en consonancia con las directrices marcadas por el nuevo marco del EEES.

El sistema de evaluación continua va a contar con el siguiente grupo de actividades calificables:

  • Trabajos: Los trabajos consistirán en ejercicios prácticos, solución a problemas propuestos, cuestionarios, etc. Se valorarán la corrección y calidad de los resultados. Dichas prácticas se efectuarán en grupos reducidos, en función de la disponibilidad de aulas informáticas. El porcentaje respecto de la nota global de todos estos trabajos será de un 40%.
  • Pruebas evaluatorias: Hay tres a lo largo del curso. El porcentaje respecto de la nota global de cada prueba evaluatoria será de un 20%.

Es necesario superar por separado los trabajos y las pruebas evaluatorias para que puedan contribuir al promedio de la nota final.

Para optar al sistema de Evaluación Continua se deberá asistir, al menos, a un 80% de las actividades presenciales (prácticas, visitas técnicas, clases, etc.)

 

2-Prueba global de evaluación final.

El alumno deberá optar por esta modalidad cuando, por su coyuntura personal, no pueda adaptarse al ritmo de trabajo requerido en el sistema de evaluación continua, haya suspendido o quisiera subir nota habiendo sido partícipe de dicha metodología de evaluación.

La prueba global de evaluación final va a contar con el siguiente grupo de actividades calificables:

  • Examen: Se realiza en las convocatorias oficiales. Siempre se podrá seguir esta opción a pesar de que el alumno haya usado el sistema de evaluación continua. (50% de la nota final).
  • Los trabajos, ejercicios prácticos, solución a problemas propuestos, cuestionarios, etc, que no se hayan entregado durante el curso y que pueden entregarse en una nueva versión el día de la convocatoria. (50% de la nota final).

4. Metodología, actividades de aprendizaje, programa y recursos

4.1. Presentación metodológica general

La asignatura es eminentemente práctica, por tanto se ha planteado con una fuerte carga práctica tanto de elaboración de problemas en clase como realizando prácticas en el aula. También hay una parte teórica.

La organización de la enseñanza se llevará a cabo mediante estos pasos:

  • Clases de teoría: Actividades llevadas a cabo mediante la exposición del profesor, donde se muestran los conceptos de la asignatura, resaltando los fundamentos, estructurados en secciones, e interrelacionando unos con otros.
  • Clases prácticas: El profesor resuelve problemas prácticos o casos con propósitos demostrativos. Este tipo de enseñanza complementa la teoría mostrada en las clases con aspectos prácticos.
  • Sesiones de laboratorio: El grupo de la asignatura se divide en varios grupos de alumnos, de acuerdo con el número de alumnos matriculados, para conseguir grupos de tamaño pequeño.
  • Tutorías individuales: Llevadas a cabo de manera individual, con atención personalizada por parte de un profesor del departamento. Las tutorías pueden ser en persona y también online.

El planteamiento, metodología y evaluación de esta guía está preparado para ser el mismo en cualquier escenario de docencia. Se ajustarán a las condiciones socio-sanitarias de cada momento, así como a las indicaciones dadas por las autoridades competentes.

El primer día de clase se proporcionará más información acerca de la organización de la asignatura.

4.2. Actividades de aprendizaje

Actividades genéricas presenciales:

  • Clases teóricas: Se explicarán los conceptos teóricos de la asignatura y se desarrollarán ejemplos prácticos ilustrativos como apoyo a la teoría cuando se crea necesario.
  • Clases prácticas: Se realizarán problemas y casos prácticos como complemento a los conceptos teóricos estudiados.
  • Prácticas de laboratorio: Los alumnos serán divididos en varios grupos de no más de 20 alumnos/as, estando tutorizados por el profesor.

Actividades genéricas no presenciales

  • Estudio y asimilación de la teoría expuesta en las clases magistrales.
  • Comprensión y asimilación de problemas y casos prácticos resueltos en las clases prácticas.
  • Resolución de problemas propuestos, proyecto, etc.
  • Preparación de las prácticas de laboratorio, elaboración de los guiones e informes correspondientes.
  • Preparación de las pruebas escritas de evaluación continua y exámenes finales.

4.3. Programa

El programa de la asignatura se estructura en torno a dos componentes de contenidos complementarios:

  • Teóricos.
  • Prácticos.

Contenidos Teóricos:

  1. Análisis y diseño de Algoritmos.
  2. Programación con Tipos Abstractos de Datos.
  3. Estructuras de Datos Lineales y Jerárquicas.
  4. Algoritmos recursivos, de búsqueda y ordenación.

Contenidos prácticos:

Cada tema expuesto en la sección anterior, lleva asociadas prácticas al respecto. Conforme se desarrollen los temas se irán planteando dichas prácticas, bien en clase o mediante la plataforma Moodle.

4.4. Planificación de las actividades de aprendizaje y calendario de fechas clave

La asignatura consta de 6 créditos ECTS, lo cual representa 150 horas de trabajo del alumno/a en la asignatura durante el semestre, es decir, 10 horas semanales durante 15 semanas lectivas.

Un resumen de la distribución temporal orientativa de una semana lectiva es el siguiente:

  • 1 hora de clases magistrales
  • 3 horas de prácticas de laboratorio
  • 6 horas de otras actividades

No obstante la tabla anterior podrá quedar más detallada, teniéndose en cuenta la distribución global siguiente:

  • 15 horas de clase magistral.
  • 41 horas de prácticas de laboratorio.
  • 4 horas de pruebas evaluatorias escritas, a razón de dos horas por prueba.
  • 45 horas de ejercicios y trabajos tutelados, repartidas a largo de las 15 semanas de duración del semestre.
  • 45 horas de estudio personal, repartidas a lo largo de las 15 semanas de duración del semestre.

 

Existe un cronograma orientativo preparado por el profesor que puede ser solicitado por los estudiantes que lo deseen.

Las fechas de los exámenes finales serán las publicadas de forma oficial en https://eupla.unizar.es

4.5. Bibliografía y recursos recomendados

http://psfunizar10.unizar.es/br13/egAsignaturas.php?codigo=29519